package com.google.code.tretris.network.game;

import java.util.Collection;

import com.google.code.tretris.events.MoveEvent;
import com.google.code.tretris.events.UpdateBoardEvent;
import com.google.code.tretris.network.exceptions.NotConnectedException;
import com.google.code.tretris.network.peers.NetworkClient;

public interface GameNetworkInterface {
	public abstract void addRotationListener(GameActionListener lester);
	public abstract void removeRotationListener(GameActionListener lester);
	public abstract void addMoveListener(GameActionListener mover);
	public abstract void removeMoveListener(GameActionListener mover);
	
	public abstract Collection<NetworkClient> getClients();

	public abstract void broadcastUpdate(Collection<UpdateBoardEvent> e) throws NotConnectedException;
	public abstract void sendMovement(MoveEvent e) throws NotConnectedException;
	
}
